package com.cnebula.dataprocess.sqoop.job.service;

import java.util.Map;

import com.cnebula.dataprocess.sqoop.job.exception.NotFoundLinkAdaper;
import com.cnebula.dataprocess.sqoop.job.exception.SqoopMLinkCreateException;
import com.cnebula.dataprocess.sqoop.job.model.LinkConfig;
import com.cnebula.dataprocess.sqoop.job.model.LspMLink;

/**
 * sqoop2 java api client 服务
 *
 */
public interface SqoopService {

	/**
	 * 创建 源数据源 / 目标数据源 连接
	 * @param config 连接配置
	 * @return
	 * @throws NotFoundLinkAdaper 没有找到相关的连接适配器
	 * @throws SqoopMLinkCreateException 创建连接失败
	 */
	public LspMLink createMLink(LinkConfig config) throws NotFoundLinkAdaper, SqoopMLinkCreateException;

	/**
	 * 提交 sqoop 作业
	 * @param fromLink 源数据源 连接
	 * @param toLink 目标数据源 连接
	 * @param fromJobConfig 源作业配置
	 * @param toJobConfig 目标作业配置
	 * @return
	 */
//	public void submitJob(LspMLink fromLink, LspMLink toLink, Map<String,String> fromJobConfig,
//			Map<String,String> toJobConfig) throws Exception;
	
	public void submitJob(String taskId, String jobId, LspMLink fromLink, LspMLink toLink, Map<String,String> fromJobConfig,
			Map<String,String> toJobConfig) throws Exception;
}
